﻿Ext.define('ConfUsuarios', {
    extend: 'ABMBase',
    Title: 'Formulario ABM Configuración de Usuarios',
    Model: 'Model.Usuarios',
    defaultPropertySort: 'nm_operador',
    storeEntidad: CreateForeignStore('storeEntidad', 'Model.Entidad'),
    storeGrupoOperadores: CreateForeignStore('storeGrupoOperadores', 'Model.GrupoOperadores'),
    listeners: {
        Creando: function (rcd) {
            rcd.record.set('st_cambiar_clave', true);
            Ext.getCmp('chkCambiarClave').setReadOnly(true);
        },
        Editando: function (rcd) {
            var x = activeInstance.EjecutarEnServidor('ObtenerGrupoOperador', { cd_operador: rcd.record.get('cd_operador') });
            Ext.getCmp('cbGrupoOperadores').setValue(x);
        },
        Actualizado: function (result) {
            if (result.success) {
                var url = Ext.ModelManager.getModel(this.Model).proxy.api.read;
                url = url.substring(0, url.lastIndexOf('?'));
                url += "?action=SetearGrupo";
                var response = Ext.Ajax.request({
                    async: false,
                    url: url,
                    params: {
                        cd_operador: Ext.getCmp('tfOperador').getValue(),
                        cd_grupo: Ext.getCmp('cbGrupoOperadores').getValue()
                    }
                });
            }
        }
    },
    WindowPanel: [{
        id: 'tfOperador',
        xtype: 'textfield',
        fieldLabel: 'Operador',
        name: 'cd_operador',
        maxLength: 50,
        isPrimaryKey: true,
        enforceMaxLength: true,
        allowBlank: false
    }, {
        xtype: 'textfield',
        fieldLabel: 'Nombre del Operador',
        name: 'nm_operador',
        maxLength: 50,
        enforceMaxLength: true,
        allowBlank: false
    }, {
        xtype: 'numberfield',
        fieldLabel: 'Interno',
        name: 'nu_interno_telefono',
        maxLength: 4,
        enforceMaxLength: true,
        allowBlank: false,
        minValue: 0,
        maxValue: 9999
    }, {
        xtype: 'checkbox',
        fieldLabel: 'Cambiar Clave',
        name: 'st_cambiar_clave',
        id: 'chkCambiarClave'
    }, {
        xtype: 'checkbox',
        fieldLabel: 'Bloqueado',
        name: 'st_bloqueado'
    }, {
        xtype: 'combobox',
        fieldLabel: 'Entidad',
        queryMode: 'local',
        displayField: 'nombre',
        valueField: 'id_entidad',
        editable: true,
        forceSelection: true,
        store: Ext.StoreMgr.get('storeEntidad'),
        allowBlank: false,
        name: 'id_entidad'
    }, {
        id: 'cbGrupoOperadores',
        xtype: 'combobox',
        fieldLabel: 'Grupo',
        queryMode: 'local',
        displayField: 'nm_grupo_operadores',
        valueField: 'cd_grupo_operadores',
        editable: true,
        forceSelection: true,
        store: Ext.StoreMgr.get('storeGrupoOperadores'),
        allowBlank: false,
        name: 'cd_grupo_operadores'
    }, {
        xtype: 'textarea',
        hideLabel: true,
        name: 'de_notas'
    }],
    Columns: [
            { text: 'Operador', dataIndex: 'cd_operador', filter: true },
            { text: 'Nombre del Operador', dataIndex: 'nm_operador', filter: true },
            { xtype: 'numbercolumn', text: 'Interno', dataIndex: 'nu_interno_telefono', filter: true, format: '0000' },
            { xtype: 'booleancolumn', text: 'Bloqueado', dataIndex: 'st_bloqueado', filter: true },
            { text: 'Barra de Herramientas', dataIndex: 'cd_barra_herr', filter: true },
            { xtype: 'booleancolumn', text: 'Tracking', dataIndex: 'st_tracking', filter: true },
            { xtype: 'booleancolumn', text: 'Cambiar Clave', dataIndex: 'st_cambiar_clave', filter: true },
            { xtype: 'datecolumn', text: 'Fecha Alta', dataIndex: 'fe_alta', filter: true },
            { text: 'Notas', dataIndex: 'de_notas', filter: true },
            { text: 'Tema', dataIndex: 'cd_tema', filter: true },
            {
                header: 'Entidad',
                dataIndex: 'id_entidad',
                filter: CreateListFilter('nombre', 'id_entidad', 'storeEntidad'),
                renderer: ForeignStoreRenderer('storeEntidad', 'nombre')
            }
        ]
});